#ifndef __VOICE_H__
#define __VOICE_H__
#include "base.h"
class VoiceBase
{
public :
	UINT m_size;
	mutex m_lock;
	queue<DataPacket*> m_qFrame;

	void PushFrame(uint8_t* pData, int size, bool bfree = false);
	void PushNull(int size);
	DataPacket* PullFrame();
	void PushFrame(DataPacket* pData);
	UINT GetSize();
	DataPacket* PullFrame(UINT size);
	VoiceBase();
	virtual ~VoiceBase();
};

//VoiceInfo
class VoiceInfo :
	public VoiceBase
{
public :
	deviceType m_type;
	wchar_t deviceid[maxSize];
	wchar_t devicename[maxSize];

	VoiceInfo();
	VoiceInfo operator=(const VoiceInfo& info)const;
	VoiceInfo(const VoiceInfo& vinfo);
	VoiceInfo(LPWSTR pid, BSTR pname, deviceType type);
	~VoiceInfo() {};
};
//--VoiceInfo

//
class VoiceData :
	public VoiceBase
{
public :
	VoiceData() {};
	~VoiceData() {};
};
//

#endif // !__HANDLE_H__
